home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Light ROM 3
/
Light ROM 3 - Disc 2.iso
/
programs
/
amiga
/
misc
/
rendcalc
/
readme
< prev
next >
Wrap
Text File
|
1994-01-21
|
36KB
|
737 lines
RenderCalc v1.41
Author: Daniel S. Milling Jr.
Copyright ⌐ 1994 Daniel S. Milling Jr.
All Rights Reserved
----------------------------------------------------------------------------
DISCLAIMER
The author makes no warranties or representations, either expressed or
implied, with respect to the program and information included herein.
The product presented herein is being supplied on an "as is" basis and
is expressly subject to change without notice. You use this software at
your own risk. In no event will the author be held liable for direct,
indirect, incidental, or consequential damages resulting from the use or
misuse of the program and information provided herein.
DISTRIBUTION
RenderCalc is a Shareware program. The RenderCalc program, the
distribution materials and the registration keyfiles are
Copyright ⌐ 1994 Daniel S. Milling Jr. All Rights Reserved.
If you find this program useful, please send in the registration fee
of $15(US) to the author of the program. The address is given at the bottom
of the Registration.form file. Please see the Registration.readme file for
more information regarding registration and the keyfiles.
RenderCalc is freely redistributable in it's original form to any bulletin
board, public domain software collection, or network system as long as the
original archive is kept intact in it's entirety and remains unaltered and
as long as no fee, other than nominal media cost, is charged for
distribution.
The keyfiles which are sent to registered users may not be distributed
and are for the sole use of the registered user. Since the keyfile contains
the encrypted name of the registered user, among other information, it would
behoove the user to keep it to him or herself. Any circulated keyfiles, if
brought to the attention of the programmer, will be rendered useless in
updated versions of the program and that user will be removed from any future
update lists. Spread the program, not the keyfile.
This program, in whole or in part, may not be included in any commercial
package without the prior written consent of the author.
INTRODUCTION
This program originally grew from my need to quickly and easily calculate
the number of frames it would take for an object moving X miles per hour
to move Y feet. This was a necessity for some animations I was creating.
I banged out the original C code for the CLI version in no more than ten
minutes. Pretty easy. Since that day, I thought it would be very nice to
have a GUI to go along with this program. After toying around with GUI
programming on and off for a couple of months between rendering, I finally
came up with RenderCalc 1.0, my first program with a GUI.
Between RenderCalc v1.0 and v1.41 there have been MANY additions and
improvements. My original intention was only to create a little
speed/distance calculator that could take MPH and FEET and tell me how
many frames it would take to travel that distance. After a couple of weeks,
RenderCalc has exploded into what it is today.
Features:
---------
- Ability to enter values for Speed and Distance and receive output telling
you how many total frames, seconds, minutes and the length of time, in the
specified time code format, that the motion will take.
- The Speed, Distance and Length Input Gadgets have Cycle gadgets attached
to them which allows you to change the units of the entered number 'on the
fly.' This gives you instantaneous updates without having to re-type the
number again.
- Table of conversions between units of length. Supported units are
inches, feet, yards, miles, millimeters, meters and kilometers.
- Ability to change the units of ANY inputted number and have all of the
values update, relative to the new units, on the fly. This saves having
to re-type the values again.
- If you want to convert a number to different units, you may enter
that number into the Length gadget and see the printed results in the
conversion table below.
- The table of conversions is linked to the Distance and Length buttons,
which means that any number entered in either gadget will be converted and
printed into the table. The reason for this is that if you enter a
number into the Distance gadget and would like to know what it converts
to in units of a different system, you don't have to re-type it into the
Length gadget. It is automatically calculated and printed for you.
- SMPTE non-drop frame, EBU and Film time code supported. SMPTE drop frame
is a selectable time code format but NOT implemented at this time.
- Ability to enter Time Code In and Out points as well as a Duration. The
time code values are printed out under the Time Code Output section. The
time code input has two modes of operation. You may enter Time Code In and
Time Code Out points which results in Duration being the final output value.
You may also enter a Time Code In and a Duration which will give you the
Time Code Out as your final value.
- Ability to change the Time Code Type 'on the fly.' This means that you
may switch between the supported time code formats and see the updated
results immediately without having to re-enter the values.
- A Zoom gadget which shrinks the program window. Instead of having
to quit the program, the user may click on the Zoom gadget. Doing this
shrinks down the RenderCalc window, getting it out of the way. Clicking
again will restore the window to it's normal size. In the Unregistered
version of the program, the Shareware Notice will be brought up every
time the Zoom gadget is clicked. Upon registration, this annoyance is
removed.
- Keyfile system which allows for easy registration. Upon registration,
you will receive a personalized ASCII keyfile which will permanently remove
ALL instances of the Shareware Notice. These instances include starting and
exiting the program as well as clicking on the Zoom gadget. The Shareware
notice will never appear again, unless the keyfile is deleted or tampered
with. The keyfile will work with all future versions of the program. If,
for some reason, the keyfile code changes, all registered users will receive
an updated keyfile as soon as possible.
Requirements
------------
- Kickstart 2.x or above.
- asl.library version 37 or above (38 or above is HIGHLY preferred)
If you don't have the asl.library the program is still usable although
you won't get a file requester.
INSTALLATION
To install RenderCalc, just move the RenderCalc program icon into the
desired drawer through Workbench. You may now run it by double clicking on
the program icon. From CLI just type in the program name when you are in
it's directory or include the full path if you're not.
PURPOSE
The purpose of this program is to provide the animator with three essential
tools.
- The first is the ability to calculate the number of frames needed
to represent a moving object of known speed and known linear distance
travelled.
- The second tool is the ability to quickly and easily convert numbers
between different common units of length.
- The third purpose is to provide the user with the ability to easily and
quickly calculate Time Code durations from an IN and OUT point and also to
Calculate an OUT point from an IN point and a duration. These conversion
may be done interchangeably between the three supported time code formats.
HOW TO USE THE PROGRAM
When you run the program you will see a Shareware message reminding
you to register the program if it is of use to you. This window will also
appear upon exiting the program as well. Read the Registration.readme file
for more information.
After the Shareware Notice disappears, you will be presented with the
main program.
There are three main input/output sections to the program. They are:
I. Frame Calculator
II. Units Converter
III. Time Code Calculator
All three sections are interconnected more or less. This means that data
entered into one section may affect the output of another section.
I. Frame Calculator
The Frame Calculator takes the input of a speed and a distance and
calculates how many frames it will take for a body to move that distance,
while travelling at that speed.
NOTE: This will only be accurate for linear movements. At this present
time there is no implementation for the calculation of movement
through an arc or anything other than a linear path. At this time
there is no implementation of variable speeds through a distance,
meaning that positive and negative accelerations are not accounted
for. Only constant velocities are handled at this time.
The Frame Calculator consists of two input gadgets. They are the Speed
and Distance Gadgets. Each gadget has one or more cycle gadgets attached
to them. The cycle gadgets tell the program which units to use in the
conversion process.
SPEED INPUT - The Speed gadget is attached to two cycle gadgets. The
first cycle gadget gives the units of distance while the
second cycle gadget gives the units of time. Together you
will get a valid (units of distance) per (units of time)
measurement of speed.
To enter input, click anywhere in the Speed input box, if a
cursor is not present already, a cursor will then appear.
Once the cursor is in the Speed input box, type in the value
and then hit <RETURN> when you are done.
The first cycle gadget, which represents the unit of
distance, may be in units of inches, feet, yards, miles,
millimeters, meters or kilometers. The default unit is MILES.
To change the units of this gadget, just click on it. For
every click you will cycle through all of the possible
choices.
The second cycle gadget, which represents the units of
time, may be in units of seconds, minutes or hours.
The default unit is HOURS. To change the units of this
gadget, just click on it. For every click you will cycle
through all of the possible choices.
DISTANCE INPUT - The Distance gadget is attached to one cycle gadget.
This cycle gadget gives the units of distance that the
body will move through. This value, with it's units,
are used to calculate the number of frames it will take
for a body to move through that distance while travelling
at that speed.
To enter input, click anywhere in the Distance input box,
if a cursor is not present already, a cursor will then
appear. Once the cursor is in the Distance input box, type
in the value and then hit <RETURN> when you are done.
The cycle gadget, which represents the units of distance
travelled, may be in units of inches, feet, yards, miles,
millimeters, meters or kilometers. The default unit is
FEET. To change the units of this gadget, just click on
it. For every click you will cycle through all of the
possible choices.
For each of these two input gadgets, the user may input numbers of no more
than 6 decimal places or a total of 10 numerical characters including
decimal point. Spaces and other characters are not allowed and will not
produce output.
The Frame Calculator also consists of an output sub-section which shows the
output in four different units. These units are Frames, Seconds, Minutes
and a Time Code value. In the case of the Distance input gadget, we have
another output into the Unit Conversion Table. See the section on the Unit
Conversion Table for a complete description of this feature.
NOTE: Each output is a separate entity. For the values entered in the
Speed and Distance gadgets, you will have a Total of Frames, a Total
of Seconds and a Total of Minutes printed out. These first three
outputs are total values. For example if you have a reading of 1181
Frames, 39.4 seconds and 0.7 minutes this means that 1181 Frames is
equal to 39.4 seconds which is equal to 0.7 minutes. This is meant
as a gauge giving the user a sense of how much time 'x' number of
Frames will take in more familiar units.
The fourth output represents the time code duration that 'x' number of
frames would span.
ACCURACY: THE FRAMES value is rounded up if it is 'x.5' or greater. If
you don't like this, just add or subtract a frame. It seems that
for values of 60 frames or more the rounding won't make too much
of a difference.
THE SECONDS value is rounded up if it is 'x.x5' or greater. This
is not meant to be a very accurate number but only to give a
'close-enough' estimate of how many seconds are required for
'x' frames.
THE MINUTES value is rounded up if it is 'x.x5' or greater. This
also is not meant to be a very accurate number. It is meant to
only give a 'close-enough' estimate of how many minutes are
required for 'x' number of Frames.
THE TIME CODE is accurate to the FRAMES value. This means
that the value given in the Frames output is represented exactly
in the time code output. This may be useful if you wanted to see
what the time code duration is for that Frames value.
CHANGING UNITS: Any cycle gadget, for the Speed or Distance inputs, may be
clicked at any time. When you click on the cycle gadget
you will change the units of the corresponding value. You
may do this an unlimited number of times. After you click
on the cycle gadget, any values printed out in the Output
sub-section of the Frame Calculator section will be updated
to reflect the new units. This update occurs 'on-the-fly'
meaning that you do not have to re-enter any number again
in order to change it's units. The conversion is done
automatically.
Clicking on the cycle gadget, attached to the Distance
input, will also affect the units printed out in the Units
Conversion Table. Please see the section on the Units
Conversion Table for a complete description of this feature.
ERRORS: If the values for the Frame Calculator output are either too large
or too small you will see '------' printed in the corresponding
output box. For example, Frames cannot exceed 999999 (if you really
need this many frames you need to get out more... :-) ) and cannot
be less than 1. However, Seconds and Minutes may be zero but only
when the Frames output is VERY low. Sometimes you will get a value
for Frames and Minutes but not Seconds. This occurs only when the
Frame count is TOO high anyway. Don't worry, as long as there is
a Frame output value, you are ok. Frames is the value you want
anyway.
If the Frame count is illegal then your Time Code output will be
set to 00:00:00:00. Otherwise, you will have a valid time code
reading relative to the Time Code Type you have selected. Please
see the section on Selecting The Time Code Type for a complete
description of this function.
II. Units Converter
The Units Converter will take any inputted number and convert it to any
supported unit.
The Length input gadget is where you may enter the number you want to
convert. The Length input gadget has a cycle gadget attached to it which
specifies the units of the Length gadget value.
LENGTH INPUT - This is where you may input a value which will be converted
and printed out into the Units Conversion Table. The number
may have as many as six decimal places or a total of fifteen
numerical digits, including the decimal point. Spaces and
other characters are not allowed and will not produce
output.
To enter input, click anywhere in the Length input box, if a
cursor is not present already, a cursor will then appear.
Once the cursor is in the Length input box, type in the value
and then hit <RETURN> when you are done.
If the Length Input value is illegal, the conversion table
will fill with zeros, thus telling you the value is illegal.
If the Length Input value is legal but the resulting
conversion yields an illegal number, that conversion field
will be filled with many '---------''s all the way across the
field. This can occur frequently when you change the units
of the value to be converted.
Attached to the Length gadget is a cycle gadget which
specifies the units of the inputted value. The units may
be of inches, feet, yards, miles, millimeters, meters or
kilometers. To change the units of this gadget, just click
on it. For every click you will cycle through all of the
possible choices.
After you enter a number into the Length gadget and hit <RETURN> the
number, if valid, will be converted and printed into the Units Conversion
Table. The Units Conversion Table can be found directly below the Length
Input gadget.
UNITS CONVERSION - The numbers printed in the table will correspond with the
TABLE units printed to the right of them. The base unit is
taken from the cycle gadget which is attached to the
Length input gadget.
NOTE: when a value is entered into the Distance Input
gadget, the base unit is then taken from the Units
cycle gadget associated with Distance.
For example, if you enter the number 5280 into the
Length gadget and hit <RETURN> you will be presented
with your converted output. If the cycle gadget was
set to FEET, you should be able to look up FEET on the
Units Conversion Table and see that the value printed
in the FEET box is '5280', the same number you inputted.
This tells you, that the number you entered was
indeed 5280 FEET. If we look at miles we will see
that, yes indeed, 5280 feet is equal to 1 mile.
DISTANCE INPUT - When a value is entered into the Distance Input gadget,
AND THE UNITS the Units Conversion Table will then be updated with this
CONVERSION data relative to it's units. For example, if you had
TABLE already entered 5280 into the Length Input gadget with
units of FEET, and you enter the number 12 into the
Distance Input gadget, with units of MILES, the new output
of the Units Conversion Table will show that 12 miles is
the entered number and that 12 miles is equal to 63360
feet.
If the Distance Input value is illegal, the conversion
table will fill with zeros, thus telling you the value is
illegal.
If the Distance Input value is legal but the resulting
conversion yields an illegal number, that conversion field
will be filled with many '---------''s all the way across
the field. This can occur frequently when you change the
units of the value to be converted.
GOING FROM LENGTH - It is very easy to restore the previous data which was
TO DISTANCE AND outputted to the Units Conversion Table. For example,
VICE VERSA if you entered a value into the Length Input gadget and
received output, you may then enter a value into the
Distance Input gadget and receive output. The value
which was previously in the Length input gadget is still
there. The way to retrieve this value is to click
anywhere inside the Length Input gadget and hit the
<RETURN> key. If you didn't type anything else, you
should get your previous Unit Conversion Table values.
If you now wanted to see the conversion of the Distance
Input value, just click anywhere inside the Distance
Input value box and then hit <RETURN>. If you didn't
type anything else you should see the Units Conversion
Table reflect the previous Distance value.
You may also click on the Units cycle gadget for either
the Length Input or Distance Input gadgets. By doing so
you will update the Units Conversion Table with the
Input value along with it's respective units.
For example. If the last number converted was input
from the Length gadget, and you then click on the
Distance Units cycle gadget, the Units Conversion Table
will be updated with the Distance Input value, relative
to it's new units.
You may click back and forth among the Units gadgets
an unlimited number of times.
ACCURACY - All of the converted values should be accurate to within
+0.0005 and -0.0005. I rounded the number to the third decimal
place with any number of 'x.xxx5' being round up. I could have
let the output go to the sixth decimal place, with the number
'x.xxxxxx5' being rounded up. This seemed a bit extreme. If
there is enough of a response I may restore the six decimal
place numbers, otherwise it stays as is.
NOTE: If there is any discrepancy with these converted values and
'real-world' values I'd appreciate any feedback (my email
addresses are listed in the 'About' requester.) It would
be a very simple matter for me to alter my table of
conversions in a future revision. I looked at a conversion
table in my Physics book and came up with the neat and
simple equation to calculate any conversion factor. If
I made any errors, please report them.
III. Time Code Calculator
The Time Code Calculator will take any inputted time code IN and OUT point and
tell you the time code duration between these two points. It will also tell
you the time code OUT point if you enter a time code IN point and a duration.
There are three input gadgets associated with the Time Code Calculator.
These are the IN, OUT and DURATION Input gadgets.
There is a Time Code Output section right below the Input section which will
tell you the time code relative to the current time code type and the number
of frames each time code value represents.
TIMECODE TYPE - This array of small buttons is situated below the Units
Conversion Table. This allows you to select which time
code type you wish to work with. The default is
SMPTE 30fps, which is non-drop frame.
NOTE: SMPTE drop-frame is a selectable time code type but,
as of this version, it is NOT implemented yet. When
you select SMPTE drop frame ALL of your time code
outputs will be set to the default '00:00:00:00'
value. The reason this button is present is to act
as a place holder for any future implementation of
SMPTE drop-frame.
You may change the Time Code Type at any time by clicking
on any one of these small round buttons. After you select
a time code type all of your current time code values will
be recalculated to reflect this change.
NOTE: if your current time code is set to SMPTE (non-drop)
and you have entered a number with a FF (frames) value
of '29' you have a legal time code value. But, if you
were to change the time code type to Film, the '29',
which was previously in the FF (frames) slot, is now
illegal, since there are only 24 frames per second
in Film as opposed to 30fps in SMPTE non-drop.
If this happens, the time code reading in question is
then set to the default '00:00:00:00' setting.
This is true for any Time Code Output value.
However, The time code value presented under the
'TOTALS' for frames WILL update properly across ALL
time code formats. This allows you to see what length
of time 'x' number of frames will take in that
specific time code format. You should also note that
ONLY the TIMECODE value for the number of frames will
change, NOT the seconds or hours for that number of
frames. The seconds and hours are set to SMPTE
30fps (non-drop) and aren't affected by any time code
change. I realize that placing both a time code
readout along with the seconds and hours readout is a
bit redundant but a friend of mine asked me to
leave it. Seconds and Minutes output may be removed
in the future.
ENTERING TIMECODE - There are three input gadgets which allow the user to
VALUES enter time code values. These are the Time Code IN,
Time Code OUT and Time Code DURATION input gadgets.
There are a number of ways you may input time code
values:
You may input as much of the time code number as you
wish. If you only have 1 second and 20 frames as your
IN point, you may type the number as:
1:20 or
120 or
01:20 or
0120 or
00000120 or
00:00:01:20
The program is quite flexible as to how you may enter
time code values. There are a few rules however:
1) you may enter a number with or without the colon ':'.
If you do enter a number with colons, the number must
be in one of these formats: (where x is a numerical
digit)
x:xx or
xx:xx or
x:xx:xx or
xx:xx:xx or
x:xx:xx:xx or
xx:xx:xx:xx
The following are illegal:
x:x or
x:x:xx:xx or
xx:xx:x:x (these are only a few.)
2) Here is a simple rule to follow when using colons in
your time code value. A time code, if it includes
colons, is legal, if, to the RIGHT of every colon,
there are two numerical digits.
You may have a single digit to the LEFT of ONLY the
LEFTMOST colon. The reason for this is the way the
program reads the time code value.
3) If you enter a time code value with or without
colons, then take note that the number is read from
right to left. Thus, if you enter the number 120
(or 1:20) it will be interpreted as 1 second and 20
frames. If you really meant 1 hour and 20 minutes,
the time code value would have to be input as
1200000 (or 1:20:00:00).
4) The only character that may be used to separate the
time code numbers is the colon. Any other characters
input will be treated as illegal, thus making the
entire time code value illegal. This will cause the
default '00:00:00:00' value to be output.
All Time Code Input values and calculations are output to the Time Code Output
area which is directly below the Time Code Input area. Under the TIMECODE
OUTPUT heading you will notice the (HH:MM:SS:FF) label. This tells you that
the time code output, from left to right, is in hours, minutes, seconds and
frames.
TIMECODE IN - You may enter any valid time code number into this input gadget.
INPUT After you enter the time code value hit the <RETURN> key. If
valid, the time code will be displayed under the Time Code IN
field of the Time Code Output area. You will also see the
number of frames which this time code value represents, relative
to the current time code type, to the right of the time code
value.
Time Code IN input has two modes:
FIRST
If the last number you entered was a Time Code DURATION value,
you will see the Time Code OUT output field display a time code.
This time code is the length of time, in time code, of the IN
point plus the DURATION value (IN + DURATION = OUT.) Next to
the OUT output field is the number of frames that the OUT
Output time code number represents relative to the current
time code type.
If the entered value for the Time Code IN point is illegal,
ONLY the Time Code IN point will be set to the default value
of '00:00:00:00'. The Time Code OUT and DURATION should then
equal one another since, in this case, IN + DURATION = OUT
where IN is equal to zero, OUT is then equal to DURATION.
SECOND
If the last number you entered was a Time Code OUT value,
you will see the Time Code DURATION field display a time code.
This time code is the length of time, in time code, between the
IN and OUT points. Next to the Duration output field is the
number of frames that the Duration Output time code number
represents relative to the current time code type.
If the entered value for the Time Code IN point is illegal,
ONLY the Time Code IN point will be set to the default value
of '00:00:00:00'. The Time Code OUT and DURATION should then
equal one another since, in this case, OUT - IN = DURATION
where IN is equal to zero, OUT is then equal to DURATION.
TIMECODE OUT - You may enter any valid time code number into this input
INPUT gadget. After you enter the time code value hit the <RETURN>
key. If valid, the time code will be displayed under the
Time Code OUT field of the Time Code Output area. You will
also see the number of frames which this time code value
represents, relative to the current time code type, to the
right of the time code value.
If you previously entered a Time Code IN point, you will see
the Time Code Duration output field display a time code. This
time code is the length of time, in time code, between the IN
and OUT points. Next to the Duration output field is the
number of frames that the Duration Output time code number
represents relative to the current time code type.
If the entered value for the Time Code OUT point is illegal,
both the Time Code Out and Time Code Duration fields will
display the default '00:00:00:00' time code value.
TIMECODE - You may enter any valid time code number into this input
DURATION gadget. After you enter the time code value hit the <RETURN>
INPUT key. If valid, the time code will be displayed under the Time
Code DURATION field of the Time Code Output area. You will
also see the number of frames which this time code value
represents, relative to the current time code type, to the
right of the time code value.
If you previously entered a Time Code IN point, you will see
the Time Code OUT output field display a time code. This time
code is the length of time, in time code, of the IN point plus
the DURATION value (IN + DURATION = OUT.) Next to the OUT
output field is the number of frames that the OUT Output time
code number represents relative to the current time code type.
If the entered value for the Time Code DURATION point is
illegal, both the Time Code Out and Time Code Duration fields
will display the default '00:00:00:00' time code value.
Below the TIMECODE OUTPUT area there is an 'About' button which will bring up
a requester telling you about the program and such. This is the same as the
'About' menu item.
MENUS
The only two menu items are the 'About' and 'Quit' items. You may see some
information regarding the program by either selecting the 'About' menu item,
by clicking on the button labelled 'Tell Me About RenderCalc!' or by pressing
the RightAmiga-A key combination. You may quit the program by either clicking
on the Close gadget, by selecting the 'Quit' menu item or by pressing the
RightAmiga-Q key combination.
BUG REPORTS
If you happen to find what you may think is a bug, please let me know. You
may report a bug by either Internet Email or postal mail. You will find my
Email addresses when you click on the 'About' menu item or it's associated
button within the program. My postal address is at the bottom of the
Registration.form file which is also included with this archive.
CREDITS
Programming and Manual Writing:
Daniel S. Milling Jr.
Intuition Interface Designed with:
GadToolsBox 2.0 by Jan van den Baard
Intuition Interface modifications by:
Daniel S. Milling Jr.
Compiled with:
SAS C compiler
Special Thanks To:
Larry Styer for Beta Testing (if there's a bug, it's his fault!! :-)
Ryan Brooks for answering some intuition related questions and for not
finding any enforcer hits!
Chris Esser for his way-cool splitter program!